In a communication network, data may be transmitted, via a network, between a transmitting terminal and a receiving terminal. The network may comprise a plurality of communications media and communications devices that facilitate the transfer of data, in the form of messages, packets or frames, between a transmitting terminal and a receiving terminal. Various protocols may be utilized to transmit the data. Some transport layer data protocols may control the quantity of data that may be transmitted during a time interval, as measured in bits per second (bps), for example. The transmission control protocol (TCP) may be considered to be an example of one such protocol. TCP may limit the amount of data that is transmitted during a time interval based on a congestion window and/or a slow start algorithm. At the beginning of transmission of a data flow, the congestion window size may be set to an initial value. This may result in a relatively small amount of data being transmitted from a transmitting terminal to a receiving terminal. The receiving terminal may subsequently communicate an acknowledgement upon receipt of the data that was transmitted by the transmitting terminal.
Upon receipt of the acknowledgement, the transmitting terminal may increase the value associated with the congestion window to a number larger than the initial window size, and transmit subsequent data based on the larger window size of the congestion window. This may result in a larger amount of data being transmitted than during a comparable time interval in which the value associated with the congestion window is smaller. A larger congestion window may also result in a higher data transfer rate between the transmitting terminal and the receiving terminal. The receiving terminal may communicate subsequent acknowledgements upon receipt of subsequent information. The transmitting terminal may continue to increase the size of the congestion window upon receipt of a subsequent acknowledgement.
In instances when the transmitting terminal does not receive a corresponding acknowledgement, the transmitting terminal may retransmit, or resend, previously transmitted data. In addition, the transmitting terminal may determine that congestion may exist in the network resulting in the previously transmitted data not being received by the receiving terminal. The previously transmitted data may be considered by the transmitting terminal to be “lost”. A bit error rate (BER), packet error rate (PER), or frame error rate (FER), may be used as a measure of the lost data. An increase in the BER, PER, and/or FER may result in an increase in the quantity of transmitted data that is lost.
In response to a determination of lost data, the transmitting terminal may also reduce the size of the congestion window. The reduction in the size of the congestion window may result in a corresponding reduction in the data transfer rate between the transmitting terminal and the receiving terminal. Once reduced, the size of the congestion window may be subsequently increased.
A mechanism by which the congestion window size may be utilized to limit the amount of data that may be transmitted during a time interval is a sliding window protocol. In a sliding window protocol, the transmitted data may be sequence numbered. For a given current congestion window size, CWCurr, the transmitting terminal may transmit a number of data blocks, for example packets of data, where the sequence number, SEQ, is within the range SEQUnAck≦SEQ≦SEQUnAck+CWCurr, where SEQUnAck is a sequence number for an unacknowledged transmitted data block. When the sequence number for a structure is SEQ>SEQUnAck+CWCurr, the transmitting terminal may delay transmitting the data until one or more previously transmitted blocks or portions of the data have been acknowledged, such that the condition SEQ≦SEQUnAck+CWCurr is met. During a slow start, the current congestion window size may be such that the transmitting terminal may transmit a single data block and wait for the transmitted data block to be acknowledged before transmitting subsequent data blocks. A procedure in which a transmitting station may transmit a single data block and wait for the transmitted data block to be acknowledged before transmitting a subsequent data block may be referred to as a stop and wait protocol.
Some data link layer data protocols may also control a data transfer rate. The MAC layer, as specified in resolution 802.11n from the Institute of Electrical and Electronics Engineers (IEEE), may be considered to be an example of one such protocol. The MAC layer may utilize a stop and wait protocol. The MAC layer parameters may influence the data transfer rate. For example, a contention window parameter may be utilized to determine a number of frame retransmission attempts that may occur if the transmitting terminal does not receive an acknowledgement from the receiving terminal in response to a first transmission attempt. A subsequent frame may not be transmitted until the current frame has been acknowledged or until a maximum number of retransmission attempts based on the contention window parameter have been performed. In some multiple input multiple output (MIMO) wireless communication systems, such as specified in resolution 802.11n from the Institute of Electrical and Electronics Engineers (IEEE), an exemplary MAC layer parameter may be determined base on an antenna selection procedure, in which each of a number of NSS≧1 transmitted data streams (where NSS may refer to the number of data streams) may be transmitted via a selected one or more transmitting antennas among a plurality of NTX>1 transmitting antennas (where NTX may refer to the number of transmitting antennas).
The BER, PER, and/or FER may be influenced by values for one or more physical (PHY) layer parameters utilized by the transmitting station. Examples of PHY layer parameters may comprise a coding rate utilized for binary convolutional coding (BCC), and a modulation type such as 64-level quadrature amplitude modulation (64-QAM).
When a coding rate is decreased from ⅚ to ¾, for example, the data transfer rate may decrease while the BER, PER, and/or FER may also decrease. When the coding rate is increased from ½ to ¾, for example, the data transfer rate may increase while the BER, PER, and/or FER may also increase. When the modulation type utilized is changed from 64-QAM to 256-QAM, the data transfer rate may increase while the BER, PER, and/or FER may also increase. When the modulation type is changed from 64-QAM to binary phase shift keying (BPSK), the data transfer rate may decrease while the BER, PER, and/or FER may also decrease. In some MIMO systems for which NSS=NTX, the data rate may decrease when NSS<NTX while the BER, PER, and/or FER may also decrease. When NSS<NTX, one or more data streams may be redundantly transmitted via more than one transmitting antenna.
A maximum data transfer rate for a terminal may be determined based on limitations imposed by the communication medium through which the transmitted data is sent. The maximum data transfer rated supported by the communication medium may be referred to as “wire speed.”
For some applications, which utilized the transmitting terminal to transmit data via the network, the peak data rate required may be less than wire speed. Consequently, it may not be necessary to utilize PHY layer parameters to achieve a maximum data rate for the transmitting terminal. Furthermore, for such applications that transmit data under real time constraints, such as streaming video, voice over Internet protocol (VOIP), retransmission of data may be undesirable due to latency delays associated with the retransmissions.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.